Operator CLHSSingleCamera

Operator Library: Hardware Platform

该算子表示 CLHS Single Link 配置相机与 VisualApplets 之间的图像数据接口。 该算子从 CLHS 相机接收数据, 并将其馈入图像处理应用程序中。

适用于 Hardware Platform
marathon VF2

该算子独占使用一个类型为 camera 的资源。 您可以选择采集卡的 port 0 或 port 1 作为图像源。 在 applet 中不能多次使用相同的资源 ID。

该算子始终有一个输出端口 O,即图像输出端口。

添加可选的 GPIO 端口

除此标准输出端口之外,如果您的设计需要,您还可以指定各种可选端口。

CLHS 协议支持脉冲和 GPIO 消息。

在算子实例化期间,将弹出一个对话框:

在这里,您可以定义最多 16 个可选 GPI(通用输入)和最多 16 个可选 GPO(通用输出)的可用性。

如果您将端口可用性设置为“0”(默认),则该算子中将不存在该端口。 如果您将端口可用性设置为 1,则该特定端口将在算子接口上可用。

当由连接的算子更改 GPI 的状态时,将传输 GPIO 状态。 当算子从相机接收到 GPIO 消息时,所有 GPO 都会更新。

参数 Bit Width

链路参数 Bit Width 可以设置为高于或低于相机实际发送的位宽的值:

  • 如果您选择较低的值,则每个像素的 LSB 位将被截断,从而仅将 MSB 位传输到应用程序中。
  • 如果您选择较高的值,则原始像素将置于传出像素的 MSB 位置。LSB 位将 用零填充。

在这两种情况下,相对亮度保持不变,即白色像素保持白色,黑色像素保持黑色。

添加可选输出端口

此外,您可以(可选)激活两个额外的输出端口:

  • 一个输出端口 Output (SyncO)(视频消息的 MultiFGSync 位),以及
  • 一个输出端口 Output (HeaderO)。 Output (HeaderO) 提供当前正在处理的视频数据包的标头信息。 该端口以 64 bit 宽度的像素提供标头信息。

输出端口 HeaderO 的结构

在图像数据从输出端口 O 输出之前,会在端口 HeaderO 上输出单个像素。该像素包含视频数据包标头的数据。 输出端口 HeaderO 用于传输有关传入数据的更复杂依赖关系的信息,或者用于通过 applet 的视频 链路对事件做出反应。

输出端口 HeaderO 的结构如下:

位置 CLHS 标头 描述
[0,2] ColorID [0,2] 视频源:目前此部分始终为 0
[3,4] ColorID [3,4] 数据包类型 0 = 视频(所有其他组合均保留)
[5,7] ColorID [5,7] Color ID:
ColorID 描述
0 单通道、多组件、Bayer、Raw
1 蓝色
2 绿色
3 红色
4 Alpha
(5..7) 保留
[8,9] VideoStatus [1,0] 行标记:
Bits 描述
00 行延续
01 行起始
10 行结束
11 完整行(起始和结束)
[10,11] VideoStatus [3,2] 帧标记:
Bits 描述
00 帧延续
01 帧起始
10 帧结束
11 完整帧(起始和结束)
12 VideoStatus [4] 触发丢失。自上一数据包以来,相机无法响应触发请求
13 VideoStatus [5] 相机缓冲区溢出
14 VideoStatus [6] 用于多采集卡配合使用的 MultiFGSync 同步(另请参阅 SyncO 输出)
15 VideoStatus [7] 重发标志,设为 0,未使用
[16,31] RowID 当前行的编号
[32,39] - 保留,设为 0
[40,55] ColID 该数据包中第一个像素的列编号
[56,63] AcquisitionSet 相机可以使用此字节来设置专有信息

I/O Property

Property 值
Operator Type M
Output Links O,要在 VisualApplets 内部使用的采集图像数据
GPO[0;15](可选),相机 GPO 的状态(通过 CLHS 交换)
GPI[0;15](可选),采集卡 GPO 的状态(通过 CLHS 交换)
SyncO(可选),视频包中置位的 MultiFGSync 位(在一个时钟周期内有效)
HeaderO(可选),每个视频包起始处一个 64 位宽的像素,包含视频包标头

Supported Link Format

Link Parameter Output Link O 输出链路 GPO[0;15](可选) 输出链路 GPI[0;15](可选) 输出链路 SyncO(可选) 输出链路 HeaderO(可选)
Bit Width any 1 1 1 64
Arithmetic unsigned unsigned unsigned unsigned unsigned
Parallelism 任意,参见参数说明 1 1 1 1
Kernel Columns 1 1 1 1 1
Kernel Rows 1 1 1 1 1
Img Protocol {VALT_IMAGE2D, VALT_LINE1D} VALT_SIGNAL VALT_SIGNAL VALT_SIGNAL VALT_Pixel0D
Color Format VAF_GRAY VAF_GRAY VAF_GRAY VAF_GRAY VAF_GRAY
Color Flavor FL_NONE FL_NONE FL_NONE FL_NONE FL_NONE
Max. Img Width any 1 1 1 1
Max. Img Height any 1 1 1 1

参数

CameraID
键入 静态写参数
默认 0
范围 {0, 1}

该参数指定使用的相机资源。 此外,该 ID 还将用于将相机通道映射到 applet 端口。

PixelFormat
键入 静态写参数
默认 Mono10p
范围 {Mono8,Mono10p,Mono12p,Mono14p,Mono16,Raw8,Raw10p,Raw12p,Raw14p,Raw16, Raw64, B8, B10p, B12p, B14p, B16, G8, G10p, G12p, G14p, G16, R8, R10p, R12p, R14p, R16, BGR8, BGR10p, BGR12p, BGR14p, BGR16, BGRa8, BGRa10p, BGRa12p, BGRa14p, BGRa16, BayerGR8, BayerGR10p, BayerGR12p,BayerGR14p, BayerGR16, BayerRG8, BayerRG10p, BayerRG12p, BayerRG14p, BayerRG16, BayerGB8, BayerGB10p, BayerGB12p, BayerGB14p, BayerGB16, BayerBG8, BayerBG10p, BayerBG12p, BayerBG14p, BayerBG16}

该参数用于指定输出 Pixel Format。

在 RAW 模式下,将忽略来自相机的传输进来的所有行和帧标记。RAW 模式用于支持复杂的链路结构,并且专用于 CLHSSingleCamera 算子。

AquisitionFormat
键入 静态写参数
默认 面积
范围 {Area; Linescan; RAW}

当此参数设为“Area”时,获取到的第一个数据是一个完整的帧。将忽略在中间开始的帧。因此,第一个视频消息中需要有“Start Of Frame”标记。

当该参数设置为 "Line" 时,首个可用数据将是一整行。中间开始的行将被忽略。因此,首个视频消息中必须包含 "Start Of Line" 标记。由于线阵相机的 "Start of Frame" 和 "End of Frame" 被设为 0,因此它们将被忽略。

当此参数设为“RAW”时,将忽略所有标记(“Start/End of Line”以及“Start/End of Frame”)。“RAW”模式用于支持复杂的链路结构。此模式仅适用于 CLHSSingleCamera 算子。

LineSupervision
键入 动态/静态读/写参数
默认 off
范围 {on, off}

如果此参数设为“on”,算子将监控从相机传入的所有行是否都已传输到小程序(applet)中。

从相机传入的行按升序编号(第 0 行、第 1 行、第 2 行……第 N 行)。该参数可确保不会丢失任何行。例如,如果连接了一个带有一个链路的相机,并且该参数监控到诸如 332、333、335、336 ……的序列,则会抛出错误。

如果相机的链路数多于 1 个,则可以使用参数 RowStep 相应地增加每个链路传入行的步长。例如,如果相机有 2 个链路,链路 0 接收第 0、2、4、6 ……行,链路 1 接收第 1、3、5、7 ……行,依此类推。同样,如果相机有 4 个链路,链路 0 接收第 0、4、8、12 ……行,链路 1 接收第 1、5、9、13 ……行,链路 2 接收第 2、6、10、14 ……行,依此类推。

此外,参数 LineSupervision 会检查完整性:行首 (SoL) 和行尾 (EoL) 必须按正确的顺序排列。将检测到缺失的 EoL 或 SoL,生成错误标志并插入行尾。将插入缺失的行作为较小的行(长度取决于 Parallelism 和位宽),直到检测到连续的两个 RowID 并再次保证行的一致性。

RowStep
键入 动态/静态读/写参数
默认 1
范围 {1, 65535}

2 个 RowIDs 之间的步长。除非使用多通道相机 且行被拆分到各个链路中,否则该值应为 1。

SyncFirstLineToFGSyncRequest
键入 动态/静态读/写参数
默认 没有
范围 {no, yes}

如果此参数设为 yes,则会丢弃第一个 FGSyncRequest 之前的所有行。仅在 LINE_1D 模式下有效。这会使第一行与第一个外部 FGSyncRequest 脉冲同步。

MinimalParallelism
键入 静态只读参数
默认 2
范围 [1; 1024]

输出链路 O 能够传输相机最大带宽而不丢失数据所需的最小 Parallelism。 该值取决于当前选定的设计时钟频率。 频率越高,Parallelism 值可以越小。